package com.heatingcharge.service.charge;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.heatingcharge.dto.ChargeInfoDTO;
import com.heatingcharge.dto.ChargeStatisticInfoDTO;
import com.heatingcharge.dto.CurrentDayChargeInfo;
import com.heatingcharge.entity.charge.ChargeInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.heatingcharge.param.ChargeInfoParam;
import com.heatingcharge.param.SearchParam;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author devin.jiang
 * @since 2019-10-17
 */
public interface IChargeInfoService extends IService<ChargeInfo> {
    IPage<ChargeInfoDTO> getChargeInfo(Page page,SearchParam searchParam);
    List<ChargeInfoDTO> getChargeInfo(SearchParam searchParam);
    List<ChargeInfoDTO> getHouseChargeInfo(SearchParam searchParam);
    //缴费接口
    Integer charge(ChargeInfoParam chargeInfoParam);
    Integer charge(Integer chargePayableId,BigDecimal actualPayable,
                   BigDecimal actual,BigDecimal additional,
                   BigDecimal reduction,BigDecimal subsidy,
                   BigDecimal discount,BigDecimal lateFee,Integer chargeModeId,
                   Date chargeDate,String payee);
    Integer add(Integer chargePayableId, BigDecimal amount,Integer chargeModeId);

    CurrentDayChargeInfo getCurrentDayInfo();

    ChargeStatisticInfoDTO getChargeMode();
}
